// plugin/components/searchbar/index.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    /**
   * 输入框当前值
   * @type {string}
   * @description 必填，开发者需要通过 onChange 事件来更新 value 值
   */
    value: {
      type: String,
      value: ''
    },
    /**
     * 输入框占位符
     * @type {string}
     */
    placeholder: {
      type: String,
      value: ''
    },
    /**
     * 最大输入长度
     * @type {number}
     * @default 140
     */
    maxLength: {
      type: Number,
      value: 0
    },
    /**
     * 是否固定顶部
     * @type {boolean}
     * @default false
     */
    fixed: {
      type: Boolean,
      value: false
    },
    /**
     * 是否聚焦
     * @type {boolean}
     * @default false
     */
    focus: {
      type: Boolean,
      value: false
    },
    /**
     * 是否禁止输入
     * @type {boolean}
     * @default false
     */
    disabled: {
      type: Boolean,
      value: false
    },
    /**
     * 是否一直显示右侧按钮
     * @type {boolean}
     * @default false
     */
    showActionButton: {
      type: Boolean,
      value: false
    },
    /**
     * 右侧按钮文案
     * @type {string}
     * @default '搜索'
     */
    actionName: {
      type: String,
      value: ''
    },
    /**
     * 输入框输入类型
     * @description 可选择的值 'text', 'number', 'idcard', 'digit'
     * @type {('text'|'number'|'idcard'|'digit')}
     * @default 'text'
     */
    inputType: {
      type: String,
      value: 'text' | 'number' | 'idcard' | 'digit'
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    flexGrow: 0,
    isFocus: false
  },

  /**
   * 组件的方法列表
   */
  methods: {
    handleChange: function(e) {
      this.triggerEvent('change', e.detail)
    },
    handleFocus: function() {
      this.setData({
        isFocus: true
      })
      this.triggerEvent('focus')
    },
    handleBlur: function() {

      this.setData({
        isFocus: false
      })
      this.triggerEvent('blur')
    },

    handleClear: function() {
      this.triggerEvent('clear')
    },

    handleActionClick: function() {
      this.triggerEvent('action')
    }
  }
})
